Multiple Inheritance via Intersection Types
نویسندگان
چکیده
Combining intersection types with higher-order subtyping yields a typed model of object-oriented programming with multiple inheritance. Objects, message passing, subtyping, and inheritance appear as programming idioms in a typed-calculus, a modelling technique that facilitates experimentation and helps in distinguishing between essential aspects of the object-oriented style |encapsulation and sub-type polymorphism, which are directly reeected in the low-level type system | and useful but inessential programming idioms such as inheritance. The target calculus, a natural generalization of system F ! with intersection types, is of independent interest. We establish basic structural properties and give a proof of type soundness using a simple semantics based on partial equivalence relations.
منابع مشابه
Decidability of Higher-Order Subtyping with Intersection Types
The combination of higher-order subtyping with intersection types yields a typed model of object-oriented programming with multiple inheritance 11]. The target calculus, F ! ^ , a natural generalization of Girard's system F ! with intersection types and bounded polymorphism, is of independent interest, and is our subject of study. Our main contribution is the proof that subtyping in F ! ^ is de...
متن کاملJava & Lambda: a Featherweight Story
We present FJ&λ, a new core calculus that extends Featherweight Java (FJ) with interfaces, supporting multiple inheritance, λ-expressions, and intersection types. Our main goal is to formalise how lambdas and intersection types are grafted on Java 8, by studying their properties in a formal setting. We show how intersection types play a significant role in several cases, in particular in the ty...
متن کاملUnion-Intersection Multiple Comparison Tests
The union-intersection principle yields a class of multiple comparison tests that include the classical Scheffé tests for analysis of variance, and are easily applied to any likelihood ratio test. Examples are given.
متن کاملCharacterizing Convergent Terms in Object Calculi via Intersection Types
We give a simple characterization of convergent terms in Abadi and Cardelli untyped Object Calculus (ς-calculus) via intersection types. We consider a λ-calculus with records and its intersection type assignment system. We prove that convergent λ-terms are characterized by their types. The characterization is then inherited by the object calculus via self-application interpretation.
متن کاملHigher-Order Intersection Types and Multiple Inheritance
We study a natural generalization of System F ! with intersection types, establishing basic structural properties and constructing a semantic model based on partial equivalence relations to prove the soundness of typing. As an application of this calculus, we deene a simple typed model of object-oriented programming with multiple inheritance. One of the rst applications of subtyping in-calculi ...
متن کامل